package tk.uodrad.apex.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import tk.uodrad.apex.project.pojo.dto.ActivityAddNewDTO;
import tk.uodrad.apex.project.pojo.dto.ActivityUpdateDTO;
import tk.uodrad.apex.project.pojo.dto.CommunityAddNewDTO;
import tk.uodrad.apex.project.pojo.dto.CommunityUpdateDTO;
import tk.uodrad.apex.project.pojo.entity.ActivityManagement;
import com.baomidou.mybatisplus.extension.service.IService;
import tk.uodrad.apex.project.pojo.entity.Community;
import tk.uodrad.apex.project.pojo.vo.ActivityDashboardVO;
import tk.uodrad.apex.project.pojo.vo.ActivityListVO;

import java.util.List;

/**
* @author Administrator
* @description 针对表【activity_management】的数据库操作Service
* @createDate 2023-04-08 15:42:25
*/
public interface ActivityManagementService extends IService<ActivityManagement> {

    /**
     * 类别“是否启用”的状态文本
     */
    String ENABLE_TEXT[] = {"禁用", "启用"};

    /**
     * 启用活动
     *
     * @param id 尝试启用的类别的id
     */
    void setEnable(Long id);

    /**
     * 禁用活动
     *
     * @param id 尝试禁用的类别的id
     */
    void setDisable(Long id);

    /**
     * 添加单个活动
     * @param activityAddNewDTO 添加活动DTO
     */
    void save(ActivityAddNewDTO activityAddNewDTO);

    /**
     * 根据ID修改活动信息
     * @param activityUpdateDTO 修改活动DTO
     */
    void updateById(ActivityUpdateDTO activityUpdateDTO);

    /**
     * 分页查询成员列表
     * @param pageNum 第几页
     * @param pageSize 每页多少条数据
     * @return IPage<ActivityListVO> 分页对象
     */
    IPage<ActivityListVO> list(Integer pageNum, Integer pageSize, String communityCode);

    List<ActivityDashboardVO> listDashboard();
}
